package com.tmt.im.wallet.controler.vo;

import com.tmt.im.common.pojo.RechargeHistoryPoJo;
import com.tmt.im.common.pojo.WithdrawHistoryPoJo;
import com.tmt.im.jpa.entity.WithdrawHistory;
import com.tmt.im.wallet.helper.IgniteQueryHelper;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.MessageFormat;

import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;

/**
 * @Description TODO
 * @Author wuyi
 * @Date 2024/10/20 14:20
 * @Version 1.0
 **/
@Getter
@Setter
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@Tag(name = "ConfirmRechargeRequest", description = "确认充值请求对象")
public class ConfirmRechargeRequest implements Serializable {

    @Serial
    private static final long serialVersionUID = 8774211257866286784L;

    /**
     * 商户号
     */
    @Schema(description = "商户号", requiredMode = REQUIRED)
    private String merchantNum;

    @Schema(description = "商户订单号", requiredMode = REQUIRED)
    private String orderNo;

    @Schema(description = "平台订单号", requiredMode = REQUIRED)
    private String platformOrderNo;

    @Schema(description = "支付金额", requiredMode = REQUIRED)
    private String amount;

    @Schema(description = "附加信息", requiredMode = REQUIRED)
    private String attch;

    @Schema(description = "订单状态, 1代表支付成功", requiredMode = REQUIRED)
    private String state;

    @Schema(description = "支付时间, 支付成功时的时间,yyyy-MM-dd HH:mm:ss", requiredMode = REQUIRED)
    private String payTime;

    @Schema(description = "支付方式, 取值范围：wechat, bankCard, alipay, szrmb", requiredMode = REQUIRED)
    private String channelCode;

    @Schema(description = "签名【md5(订单状态+商户号+商户订单号+支付金额+商户秘钥)】", requiredMode = REQUIRED)
    private String sign;

    @Schema(description = "实际支付金额", requiredMode = REQUIRED)
    private String actualPayAmount;

}


